package main.com.votes;

import java.util.List;



public class PageBeanUtils<T> {
 private int prePage;//上一页
 private int nextPage;//下一页
 private int firstPage=1;//首页
 private int lastPage;//尾页
 private int currentPage = 1;//当前
 private int totalPage;//总页数
 private int pageSize;//每页显示条数，默认显示10条
 private int totalData;//数据总条数
 private List<T> pageData;//数据
 
 
 public PageBeanUtils(int currentPage,int pageSize, int totalData) {
 this.currentPage = currentPage;
 this.pageSize = pageSize;
 this.totalData = totalData;
 
 //计算获得总页数（尾页）
// this.totalPage = this.lastPage = (totalData+pageSize-1)/pageSize;
 this.totalPage = this.lastPage = (int)Math.ceil((double)totalData/pageSize);
 //防止当前页小于1
 this.currentPage = Math.max(this.currentPage, 1);
 //防止当前页大于总的页数
 this.currentPage = Math.min(this.totalPage, this.currentPage);
 //设置上一页，上一页不能小于1
 this.prePage = Math.max(this.currentPage-1, 1);
 //设置下一页，下一页不能大于总页数
 this.nextPage = Math.min(this.currentPage+1, this.totalPage);
 
 /**
 * ceil
public static double ceil(double a)
返回最小的（最接近负无穷大） double 值，该值大于等于参数，并等于某个整数。特殊情况如下：
如果参数值已经等于某个整数，那么结果与该参数相同。
如果参数为 NaN、无穷大、正 0 或负 0，那么结果与参数相同。
如果参数值小于 0，但是大于 -1.0，那么结果为负 0。
注意， Math.ceil(x) 的值与 -Math.floor(-x) 的值完全相同。
参数：
a - 一个值。
返回：
最小（最接近负无穷大）浮点值，该值大于等于该参数，并等于某个整数。
 */
 
 }
 
 public PageBeanUtils(int prePage, int nextPage, int firstPage, int lastPage, int currentPage, int totalPage,
 int pageSize, int totalData, List<T> pageData) {
 super();
 this.prePage = prePage;
 this.nextPage = nextPage;
 this.firstPage = firstPage;
 this.lastPage = lastPage;
 this.currentPage = currentPage;
 this.totalPage = totalPage;
 this.pageSize = pageSize;
 this.totalData = totalData;
 this.pageData = pageData;
 }
 public int getPrePage() {
 return prePage;
 }
 public void setPrePage(int prePage) {
 this.prePage = prePage;
 }
 public int getNextPage() {
 return nextPage;
 }
 public void setNextPage(int nextPage) {
 this.nextPage = nextPage;
 }
 public int getFirstPage() {
 return firstPage;
 }
 public void setFirstPage(int firstPage) {
 this.firstPage = firstPage;
 }
 public int getLastPage() {
 return lastPage;
 }
 public void setLastPage(int lastPage) {
 this.lastPage = lastPage;
 }
 public int getCurrentPage() {
 return currentPage;
 }
 public void setCurrentPage(int currentPage) {
 this.currentPage = currentPage;
 }
 public int getTotalPage() {
 return totalPage;
 }
 public void setTotalPage(int totalPage) {
 this.totalPage = totalPage;
 }
 public int getPageSize() {
 return pageSize;
 }
 public void setPageSize(int pageSize) {
 this.pageSize = pageSize;
 }
 public int getTotalData() {
 return totalData;
 }
 public void setTotalData(int totalData) {
 this.totalData = totalData;
 }
 public List<T> getPageData() {
 return pageData;
 }
 public void setPageData(List<T> pageData) {
 this.pageData = pageData;
 }
 
 
 /*
 * 
 * 
 * totalPage = (totalData+pageSize-1)/pageSize;
 * 
 * 
 * */
}